import { http } from '@/utils/http';
import { Main } from '@/service/types/index';

/** 获取轮播图 */
export const GetCarouselBannerInfo = (data) => {
  return http.post<Main.CarouselBannerInfo[]>('/carousel-banner-info/list', data)
}

/** 统一支付接口 */
export const WechatUnifiedOrder = (data) => {
  return http.get<any>('/wechat/unifiedOrder', data)
}

/** 获取登录二维码地址(公众号) */
export const WechatQrCode = (data) => {
  return http.get<any>('/wechat/qrCode', data)
}

/** 微信支付充值回调 */
export const WechatNotify = (data) => {
  return http.get<any>('/wechat/notify', data)
}

/** 发送验证码 */
export const AliyunsmsSendSms = (data) => {
  return http.get<any>('/aliyunsms/sendSms', data)
}

/** 手机号验证码登录 */
export const LoginPhone = (data) => {
  return http.get<IUserInfo>('/loginPhone', data)
}

/** 微信登录（小程序） */
export const LoginWechat = (data) => {
  return http.get<IUserInfo>('/loginWechat', data)
}

/** 登出 */
export const LogoutSystem = () => {
  return http.get<any>('/logoutSystem')
}

/** 获取省市区信息 */
export const RegionInfoGetList = (data) => {
  return http.post<Main.RegionInfo[]>('/region-info/getList', data)
}

/** 获取字典列表 */
export const DictInfoListByBelong = (data: {
  belongTo: string;
}) => {
  return http.get<Main.DictInfo[]>('/dict-info/listByBelong', data)
}

/** 新增文件信息表 */
export const FileInfo = (data) => {
  return http.post<any>('/file-info', data)
}

/** 获取默认金额配置表详情 */
export const GetDefaultAmountConfigQueryCode = (data: {
  /**
   * call_min_amount:最小打电话金额，
   * create_dating:创建约会，
   * join_dating:参加约会，
   * join_event:参加活动，
   * chat:每条聊天费用，
   * call:每分钟电话费用，
   * chat_count:默认免费聊天条数，
   * top_amount:置顶每天的费用
   * getPhone：获取手机号
   * top_dating：约会置顶费用
   * matchmaker_save: 开通全民红娘金额
   */
  code: 'call_min_amount' | 'create_dating' | 'join_dating' | 'join_event' | 'chat' | 'call' | 'chat_count' | 'top_amount' | 'getPhone' | 'top_dating' | 'matchmaker_save';
}) => {
  return http.get<Main.DefaultAmountConfigQueryCode>('/default-amount-config/queryCode', data)
}

/** 获取公共信息配置表分页 */
export const GetPublicInfoConfigPage = (query, data) => {
  return http.post<IResDataInfo<Main.GetPublicInfoConfigPageItem>>('/public-info-config/page', query, data)
}

/** 获取公共信息配置 */
export const GetPublicInfo = (data) => {
  return http.get<Main.GetPublicInfoConfigPageItem>('/public-info-config/getPublicInfo', data)
}

/** 通过ip获取地址 */
export const GetBaiduyunIp2address = (data) => {
  return http.get<Main.BaiduyunIp2addressInfo>('/baiduyun/ip2address', data)
}

/** 通过类型扣减乐缘币 */
export const ReduceBalanceByType = (data: {
  /** 用户ID */
  userId: string;
  /** 
   * membership_purchase： 会员购买 | 
   * recharge： 充值 | 
   * reduceRecharge： 消费乐缘币 | 
   * reward： 打赏 | 
   * joinEvent： 参加活动 | 
   * startDating： 发起约会 | 
   * joinDating： 应邀 | 
   * commission： 回佣 | 
   * getPhone： 获取电话 | 
   * top： 置顶 | 
   * call： 通话 | 
   * chat： 聊天
   * */
  type: 'membership_purchase' | 'recharge' | 'reduceRecharge' | 'reward' 
        | 'joinEvent' | 'startDating' | 'joinDating' | 'commission' 
        | 'getPhone' | 'top' | 'call' | 'chat';
}) => {
  return http.post<any>('/user-balance-info/reduceBalanceByType', {}, data)
}

/** 配置显隐 */
export const QueryConfig = (data) => {
  return http.get<any>('/dict-info/queryConfig', data)
}

/** 获取用户直播配置表详情 */
export const GetLiveStreamingConfig = (data: { id: number; }) => {
  return http.get<Main.LiveStreamingConfig>('/live-streaming-config', data)
}

/** 敏感信息校验 */
export const SecCheck = (data: Main.SecCheckParams) => {
  return http.post<any>('/wechat/secCheck', data)
}

/** 获取图片回调信息 */
export const GetImgResult = (data: any) => {
  return http.get<any>('/wechat/getImgResult', data)
}